/*
 * Created by: vadikv
 * Created: Friday, March 07, 2008
 */

using System.Collections.Generic;

namespace OneDayModel.Interfaces
{
    public interface IUser
    {
        void AssignRole(IRole role);
        void SetAttributes(IAttributeRecord[] attributes);
        void Create();

        string this[string attributeName] { get; set; }
        void SetUserAccountStatus(AccountStatus accountStatus);
        void CommitChanges();

        IList<IRole> Roles { get; }

        IEnumerable<KeyValuePair<string, string>> AttributesRecords { get; }
    }

    public enum AccountStatus
    {
        notExist,
        existAndActive,
        existAndBanned,
        existAndWaitingForConfirmation
    }
}